#ifndef HTTPIMAGE_H
#define HTTPIMAGE_H
#include <QTableWidget>
#include <QLabel>
#include <QByteArray>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QNetworkReply>
#include <QPixmap>
#include <film.h>

class httpImage : public QObject
{
    Q_OBJECT
public:
    httpImage();
    ~httpImage();

    void setUrl(QString urlString);
    void setPixmap(QPixmap* pix);
    void setFilm(film* f);

    void imageDansGrille(QTableWidget* gri, int li, int co, QString urlString);
    void imageDansLabel(QLabel* lab, QString urlString,int hauteur = -1, int largeur = -1);
    void imageDansPixmap(QPixmap* pix, QString urlString);
    void imageDansFilm(film* f, QString urlString="");


protected slots:

    void recupererImage();
    void recupererImageFilm();

    //permet de dire a l'objet de ne rien faire une fois l'image téléchargé (utile pour ne pas écrire dans un objet n'existant plus)
    void abandonne();
    void httpRequeteFinie(QNetworkReply * rep);

    void sauverImageGrille(const QPixmap &pix);
    void sauverImageLabel(const QPixmap &pix);
    void sauverImagePixmap(const QPixmap &pix);
    void sauverImageFilm(const QPixmap &pix);

protected:
    QString mUrlImage;
    QNetworkAccessManager req;
    QByteArray buffer;
    QTableWidget* Grille;
    int LigneGrille, ColonneGrille;
    QLabel* Label;
    QPixmap* mImage;
    film* mFilm;
    int Hauteur,Largeur;
    bool mAbandonne;


signals:
    void imageReady(const QPixmap &pix);
    void fini();
};

#endif // HTTPIMAGE_H
